package 自定义异常类;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 姚东名
 * Date: 2024-06-21
 * Time: 20:12
 */
//Java 中虽然已经内置了丰富的异常类, 但是并不能完全表示实际开发中所遇到的一些异常，此时就需要维护符合我
//们实际情况的异常结构.

//例如, 我们实现一个用户登陆功能.
public class Login {
    private String userName;
    private String password;

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public Login(String userName, String password) {
        this.userName = userName;
        this.password = password;
    }

    public void loginInfo(String userName, String password) {
        if(!this.userName.equals(userName)) {
            System.out.println("用户名错误！");
            return;
        }
        if(!this.password.equals(password)) {
            System.out.println("密码错误！");
            return;
        }
        System.out.println("登陆成功!");
    }

    public static void main(String[] args) {
        Login login = new Login("reborn", "11223344");
        login.loginInfo("admin", "");
    }
}

/*
此时我们在处理用户名密码错误的时候可能就需要抛出两种异常. 我们可以基于已有的异常类进行扩展(继承), 创建
和我们业务相关的异常类

具体方式：
1. 自定义类型，然后继承自Exception或者RunTimeException
2. 实现一个带有String类型参数的构造方法，参数含义：出现异常的原因
 */